In a communication system, an access node may comprise a device or set of devices that serve as a gateway to a network. Client nodes may use an access node to exchange information with other nodes, gateways or devices communicatively coupled to the network. This information may take the form of voice, data, or some other media. The client nodes may be wireline or wireless components.
Communication systems in general, and wireless networks in particular, are subject to impairments that can lead to packet corruption and packet loss. For instance a wireless signal can suffer from various types of attenuation, reflections, and interference. In order to address these problems and reduce the effective packet loss rate of a channel, forward error correction (FEC) schemes may be used.
One particularly effective method of implementing FEC is through the use of hybrid automatic repeat request (ARQ). In a communication system using hybrid ARQ, a client node transmits one or more subpackets containing copies of part or all of a packet. Each subpacket may also contain an extent of FEC coding. An access node transmits a negative acknowledgment (NACK) for each sub-packet it receives until the access node can properly decode the original packet from the series of sub-packets. Once the access node successfully decodes the original packet, it transmits an acknowledgment (ACK) to the client node. Preferably, a client node will attempt to transmit only a limited number of subpackets per packet before giving up on the transmission of the packet.
At a fixed time after the access node receives the first subpacket, the access node transmits a final ARQ message to the client node. This final ARQ message either ACKs or NACKs the entire packet. If a subpacket of the packet has been ACKed, the final ARQ message will be an ACK. If none of the subpackets of the packet were ACKed, the final ARQ message will be a NACK.
If the access node transmits a final ARQ ACK message, the access node passes the received and decoded packet to a higher layer protocol, such as a network layer protocol, for further processing. Additionally, upon receiving a final ARQ ACK message, the client node preferably removes a copy of the packet from its transmit buffer, thus freeing client node memory.
Communication systems with lossy channels, such as wireless networks, may benefit significantly from hybrid ARQ. The use of hybrid ARQ may be able to reduce packet error rates of 10% or more to a negligible level. However, the channel characteristics of wireless networks may fluctuate, with bit error rates and frame error rates changing from time to time. When the network conditions are poor, some or all subpackets may be garbled or lost in transit between the client node and access node. In such a situation, it is useful to have the final ARQ message confirm the status of the packet.
However, when the network conditions are favorable, the majority of subpackets transmitted from the client node to the access node will be successfully received. Thus, given that the final ARQ message is transmitted at a fixed time interval after the first subpacket is transmitted, the access node may have to wait an unnecessarily long period of time before passing the packet to a high layer protocol. For latency-sensitive applications, such as voice over Internet Protocol (VOIP), push to talk (PTT), and interacting gaming, this addition of a few milliseconds or a few tens of milliseconds of packet delay can have a deleterious impact on end-to-end application performance. Moreover, the client node is required to maintain a copy of the packet in a buffer while it is waiting to receive the final ARQ message, thus wasting memory resources. Furthermore, when the access node transmits a final ARQ message, valuable and scarce network resources may be used.